package com.gkzf.ai.module.crm.controller.admin.simpleCredit.vo;

import com.alibaba.excel.annotation.ExcelProperty;
import com.gkzf.ai.module.crm.dal.dataobject.creditreportsimple.CreditReportSimpleCreditCardDO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

@Schema(description = "管理后台 - CRM 征信报告简版新增/修改 Request VO")
@Data
public class CreditReportSimpleSaveReqVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "26614")
    private Long id;

    @Schema(description = "微信openId", example = "32728")
    private String userOpenId;

    /**
     * 0：解析中 1：解析成功 2：解析失败
     */
    @Schema(description = "0：解析中 1：解析成功 2：解析失败", example = "0")
    private Integer status;

    @Schema(description = "姓名", example = "王五")
    private String name;

    @Schema(description = "证件号码")
    private String idNumber;

    @Schema(description = "性别")
    private Integer gender;

    @Schema(description = "年龄")
    private Integer age;

    @Schema(description = "婚姻状况", example = "1")
    private String marriageStatus;

    @Schema(description = "报告时间", example = "2025-01-01")
    private String reportTime;

    @Schema(description = "征信报告url", example = "https://www.iocoder.cn")
    private String creditReportUrl;

    @Schema(description = "征信报告名称", example = "李四")
    private String creditReportName;

    @Schema(description = "是否是白户 0：否  1：大白户  2：小白户")
    private Integer creditReportWhiteType;

    @Schema(description = "贷款账户数", example = "526")
    private Integer loanAccountCount;

    @Schema(description = "贷款授信总额")
    private BigDecimal loanGrossAmount;

    @Schema(description = "贷款授信余额")
    private BigDecimal loanBalance;

    @Schema(description = "信用卡账户数", example = "29673")
    private Integer creditCardAccountCount;

    @Schema(description = "信用卡授信总额")
    private BigDecimal creditCardGrossAmount;

    @Schema(description = "信用卡授信余额")
    private BigDecimal creditCardBalance;

    @Schema(description = "信用卡已用额度")
    private BigDecimal creditCardUsedCredit;

    @Schema(description = "信用卡当前使用率")
    private BigDecimal creditCardCurrentRate;

    @Schema(description = "负债总额")
    private BigDecimal totalLiabilities;

    @Schema(description = "住房按揭账户", example = "26995")
    private Integer housingMortgageAccount;

    @Schema(description = "住房按揭金额")
    private BigDecimal housingMortgageMoney;

    @Schema(description = "车辆按揭账户", example = "18139")
    private Integer vehicleAccount;

    @Schema(description = "车辆按揭金额")
    private BigDecimal vehicleMoney;

    @Schema(description = "银行机构账户", example = "14364")
    private Integer bankingOrganizationAccount;

    @Schema(description = "银行机构余额")
    private BigDecimal bankingOrganizationMoney;

    @Schema(description = "非银行机构账户", example = "8421")
    private Integer nonBankingOrganizationAccount;

    @Schema(description = "非银行机构余额")
    private BigDecimal nonBankingOrganizationMoney;

    @Schema(description = "消费贷款机构账户", example = "11512")
    @ExcelProperty("消费贷款机构账户")
    private Integer consumerLoanAccount;

    @Schema(description = "消费贷款机构余额")
    @ExcelProperty("消费贷款机构余额")
    private BigDecimal consumerLoanMoney;

    @Schema(description = "经营贷款机构账户", example = "27989")
    @ExcelProperty("经营贷款机构账户")
    private Integer operateLoanAccount;

    @Schema(description = "经营贷款机构余额")
    @ExcelProperty("经营贷款机构余额")
    private BigDecimal operateLoanMoney;

    @Schema(description = "小额贷款机构账户", example = "8633")
    @ExcelProperty("小额贷款机构账户")
    private Integer pettyLoanAccount;

    @Schema(description = "小额贷款机构余额")
    @ExcelProperty("小额贷款机构余额")
    private BigDecimal pettyLoanMoney;

    @Schema(description = "消费金融贷款机构账户", example = "27299")
    @ExcelProperty("消费金融贷款机构账户")
    private Integer financeLoanAccount;

    @Schema(description = "消费金融贷款机构余额")
    @ExcelProperty("消费金融贷款机构余额")
    private BigDecimal financeLoanMoney;


    @Schema(description = "欠款信息记录数", example = "32176")
    private Integer debtInfoCount;

    @Schema(description = "欠款信息金额")
    private BigDecimal debtInfoMoney;

    @Schema(description = "民生判断信息记录数", example = "27479")
    private Integer civilJudgmentInfoCount;

    @Schema(description = "民生判断信息金额")
    private BigDecimal civilJudgmentInfoMoney;

    @Schema(description = "强制执行信息记录数", example = "3219")
    private Integer enforceInfoCount;

    @Schema(description = "强制执行信息金额")
    private BigDecimal enforceInfoMoney;

    @Schema(description = "行政处罚信息记录数", example = "18749")
    private Integer executivePenalizeInfoCount;

    @Schema(description = "行政处罚信息金额")
    private BigDecimal executivePenalizeInfoMoney;

    @Schema(description = "逾期贷款账户数", example = "13114")
    private Integer overdueLoanAccount;

    @Schema(description = "逾期信用卡账户数", example = "14841")
    private Integer overdueCardAccount;

    @Schema(description = "逾期合计总数", example = "25772")
    private Integer overdueSumAccount;

    /**
     * 逾期90天贷款账户数
     */
    @Schema(description = "逾期90天贷款账户数", example = "25772")
    private Integer overdueLoan90Account;
    /**
     * 逾期90天信用卡账户数
     */
    @Schema(description = "逾期90天信用卡账户数", example = "25772")
    private Integer overdueCard90Account;

    @Schema(description = "创建可分配的部门ID", example = "29278")
    @ExcelProperty("创建可分配的部门ID")
    private Long deptId;

    @Schema(description = "0 ：未分配   1：已分配")
    @ExcelProperty("0 ：未分配   1：已分配")
    private Integer isAllocation;

    @Schema(description = "分配的业务员", example = "12036")
    @ExcelProperty("分配的业务员")
    private Long userId;
    /**
     * 逾期90天合计总数
     */
    @Schema(description = "逾期90天合计总数", example = "25772")
    private Integer overdueSum90Account;

    @Schema(description = "查询记录json")
    private String queryRecordCollect;

    @Schema(description = "查询记录最近一次查询时间")
    private String mostRecentQueryTime;

    @Schema(description = "征信分析结果")
    private String creditAnalysis;

    @Schema(description = "简版逾期记录")
    private List<CreditReportSimpleCreditCardDO> simpleOverdueList;
}